Electronic payment systems have evolved over the last several years with the introduction of services by different payment providers or facilitators. These payment facilitators may use different proprietary programming interfaces to develop payment applications. Each application may be developed independently of one another. This approach can be problematic as new features and requirements may have to be implemented individually depending on the service. This approach may result in unnecessary duplicate efforts and may delay time to bring new payment applications/services to the market.